home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
t_os
/
nem
/
nem.exe
/
CONTROL.PLP
next >
Wrap
Text File
|
1991-08-17
|
6KB
|
166 lines
/* auto pilot program 「NEM 2.04」 1991.4.01 By GOOSE(MAF00070) */
/** 処理用関数 ************************************************/
/*--------------------------------------------------------------
** 必要な項目が設定されてない場合のメッセージ出力
**------------------------------------------------------------*/
%Pleasset { [msg]
select(msg|{を「1.設定変更」で設定してから処理を選択して下さい。},{180},,{ 確認 },)
};
/*--------------------------------------------------------------
** セットアップファイルからキーワードを持つ行を読み込み,その内容を返す。
**------------------------------------------------------------*/
%Getfield { [FILE,KEY] %temp @read(FILE);im(@head(@body(temp,KEY|{=}),{;}))};
/*--------------------------------------------------------------
** セットアップファイルのキーワードを持つ行を置き換える。
**------------------------------------------------------------*/
%Setfield {
[FILE,KEY,DATA]
%temp @read(FILE);%temp1 @head(temp,KEY|{=});
%temp2 @body(temp,KEY|{=}|@Getfield(FILE,KEY)|{;});
%delcmd {DEL }|FILE;dispoff({Yes});command(delcmd);dispoff({No});
write(FILE,temp1|KEY|{=}|DATA|{;}|temp2);
};
/*--------------------------------------------------------------
** getcdirの値がrootなら\を取り除く。
**------------------------------------------------------------*/
%Getcdir2 {
var temp[48];temp:=@getcdir;
case(@getchar(temp,@nochar(temp))={\},{Yes},{temp:=@body(temp,,{\})},{No},);
im(temp)
};
/*--------------------------------------------------------------
** ログファイルのコピー(.月日->.LOG)。
**------------------------------------------------------------*/
%Logadd {
[path,filename,date]
case(DEBUG={Yes},{display({Logadd}|path|{\}|filename|{.}|date|{\n})});
%logfile path|{\}|filename|{.}|{LOG};
%today path|{\}|filename|{.}|date;
%copycmd {COPY }|logfile|{+}|today|{ }|logfile;
%delcmd {DEL }|today;case(DEBUG={Yes},{No},{dispoff({Yes})});
command(copycmd);command(delcmd);dispoff({No});
};
/*注意を促す画面フラッシュ*/
%Flash {backclr(184,64,64);display({});backclr(0,0,0)};
/*--------------------------------------------------------------
** 空白除去
**------------------------------------------------------------*/
%rmblank { [str]
var work[256];work:=str;
loop({case(@getchar(work,1,1)={ },
{Yes},{work:=@getchar(work,2);im({Yes})},
{No},{case(@getchar(work,1,2)={ },
{Yes},{work:=@getchar(work,3);im({Yes})},{No},{im({No})} )} )});
loop({case(@getchar(work,@nochar(work),1)={ },
{Yes},{work:=@getchar(work,1,@nochar(work)-1);im({Yes})},
{No},{case(@getchar(work,@nochar(work)-1,2)={ },
{Yes},{work:=@getchar(work,1,@nochar(work)-2);im({Yes})},
{No},{im({No})} )} )});
im(work)
};
/** 実行開始 **************************************************/
/*- 変数宣言 -------------------------------------------------*/
var PROCESS[256];var PROCNUM[32];var PLTEND[3];var FORUM[128];var UID[8];
var PASSWD[32];var FIRST[3];FIRST:={Yes};
/*- セットアップファイルのチェック ---------------------------------------*/
case(@filechk(SETUPF),{No},
{select({SETUPファイル(}|SETUPF|{)がありません。},
{600},{stop},{ 作成せずに終わる },{stop},
{ 新規に作成する },{display({\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n});Crisetup;Setup})
});
/*- メインループ開始 ----------------------------------------------*/
PROCESS:=DEFAULT;PROCNUM:=DEFAULTN;FORUM:=@Getfield(SETUPF,{FORUM});%DATE @day;
%MAILPATH {};%LOGPATH {};
%BMAIL {};%HP {};%ABORT {};%ABORTTIME {};%LHPATH {};%PARMES {};
%LOGADD {};%MAILADD {};
%COMPMAIL {};%COMPLOG {};%COMPHP {};
%DELMAIL {};%DELLOG {};%DELHP {};
display({\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n});
loop(
{PLTEND:={Yes};
loop(Selproc); /* 処理選択 */
case(DEBUG,{Yes},{display({PROCESS:}|PROCESS|{\n})});
/*- セットアップファイルからの情報の読み込み ----------------------*/
%SETBUF @read(SETUPF);
%MAILPATH @head(@body(SETBUF,{MAILPATH=}),{;});
%LOGPATH @head(@body(SETBUF,{LOGPATH=}),{;});
%BMAIL @head(@body(SETBUF,{BMAIL=}),{;});
%HP @head(@body(SETBUF,{HP=}),{;});
%ABORT @head(@body(SETBUF,{ABORT=}),{;});
%ABORTTIME @head(@body(SETBUF,{ABORTTIME=}),{;});
/* %LHPATH @head(@body(SETBUF,{LHPATH=}),{;}); */
%PARMES @head(@body(SETBUF,{PARMES=}),{;});
%LOGADD @head(@body(SETBUF,{LOGADD=}),{;});
/* %MAILADD @head(@body(SETBUF,{MAILADD=}),{;});
%COMPMAIL @head(@body(SETBUF,{COMPMAIL=}),{;});
%COMPLOG @head(@body(SETBUF,{COMPLOG=}),{;});
%COMPHP @head(@body(SETBUF,{COMPHP=}),{;});
%DELMAIL @head(@body(SETBUF,{DELMAIL=}),{;});
%DELLOG @head(@body(SETBUF,{DELLOG=}),{;});
%DELHP @head(@body(SETBUF,{DELHP=}),{;}); */
case(FIRST,{Yes},
{
/*- 未続済なら接続する -------------------------------*/
sendtype({Ch/1});
wait({1},);
dispoff({Yes});type({+++});
wait({2},
{dispoff({No});
%temp @Getfield(SETUPF,{UID});
case(@body(@head(temp,{,No,}),{,})<>{},
{No},{UID:=@head(temp,{,No,})},
{Yes},
{%ONEPROC temp;
%TITLE { どのIDでログインしますか?};
loop({UID:=@Selelm;
case(UID={},{Yes},{im({Yes})},{No},{im({No})}) }); }
);
%temp @Getfield(SETUPF,{PASSWD});
var temp1[40];temp1:=@body(@head(@Getfield(SETUPF,{UID}),{,No,}),{,});
PASSWD:=@case(temp1<>{},
{No},{im(@head(temp,{,No,}))},
{Yes},{var I[1];I:=1;
temp1:=@head(@Getfield(SETUPF,{UID}),{,No,});
loop({case(@head(temp1,{,})=UID,
{Yes},{im({No})},
{No},{I:=I+1;temp1:=@body(temp1,{,});im({Yes})}
)});
var J[1];J:={1};var temp2[40];temp2:=temp;
loop({case(J<I,
{Yes},{temp2:=@body(temp2,{,});J:=J+1;im({Yes})})});
im(@head(temp2,{,}))
});
sendtype({Line});
display({★オートパイロットの実行を開始します。\n});
{Mopset;Dialap;Login}},
{OK},{wait({1});sendtype({Line});type({ATO\n});wait({1},);
UID:=@head(@Getfield(SETUPF,{UID}),{,});
type({\n});wait({3},);dispoff({No})
});
FIRST:={No};
});
/*- 選択された処理がある間,実行する -----------------------------------*/
case(ABORT={Yes},
{Yes},
{%Abort CUTLINEP;
case(PARMES={Yes},
{Yes},{%Rmes RMESMP;loop(Exeproc)},
{No}, {%Rmes RMESFP;loop(Exeproc)})},
{No},
{%Abort STOPPLTP;
case(PARMES={Yes},
{Yes},{%Rmes RMESMP;loop(Exeproc)},
{No}, {%Rmes RMESFP;loop(Exeproc)})}
);
case(PLTEND,{Yes},{Logout;stop});
Flash;Flash;
display({\n★選択された処理を終わりました。\n});
PROCESS:={};PROCNUM:={};
im({Yes})
}
);